<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>ES678新特性-set</title>
</head>

<body>
  <script>
    /*
      Set,是ES678新规范中提供的一种全新的'数组',叫做集合
      特性: 容器中没有重复元素,重复元素无法添加进去
    */
    const arr = [4, 2, 1, 1, 3, 4, 1]
    //把数组转换成set集合
    const set = new Set(arr)
    console.log(set) //[4, 2, 1, 3]

    //属性: 获取set的长度
    console.log(set.size)

    //常用函数
    //1.添加元素
    set.add(5)
    set.add(8)

    //2.清空容器元素
    //set.clear()

    //3.删除容器元素
    //set.delete(2)

    //4.判断容器中是否包含指定元素
    console.log(set.has(999))

    //5.keys() 用来获取当前集合的迭代器对象
    /* const iter = set.keys()
    while (true) {
      //获取迭代器中的元素对象
      const obj = iter.next()
      console.log(obj.value, obj.done)
      if (obj.done) {
        break
      }
    } */


    /* 数组排重函数 */
    function noRepeatElement(arr) {
      return Array.from(new Set(arr))
    }

    console.log(noRepeatElement(arr))
  </script>
</body>

</html>